// 自定义一些通用的api
import { useIntersectionObserver, useIntervalFn } from '@vueuse/core'
import { onUnmounted, ref } from 'vue';
// 懒加载api
export function useLazyData(apiFn: () => void) {
  const target = ref(null)
  // 一进来就加载了/发送了请求, 待优化
  const { stop } = useIntersectionObserver(target, ([{ isIntersecting }]) => {
    if (isIntersecting) {
      // home.getNewList() // 一进入到可视区, 调用方法, 去发送请求
      apiFn()
      stop() // 停止监听
    }
  })
  return target
}

// 倒计时api
export function useCountDown(count: number = 60) {
  const time = ref(0)

  const { pause, resume } = useIntervalFn(() => {
    // console.log('定时器执行中...');
    time.value--
    if (time.value === 0) {
      pause()
    }
  }, 1000, {
    immediate: false // 一进入页面, 不主动执行/开启定时器
  })

  // 组件销毁的时候, 清除定时器
  onUnmounted(() => {
    pause()
  })

  // 设置倒计时时间+开启倒计时
  const start = () => {
    time.value = count
    resume()
  }

  return {
    time,
    start
  }
}